/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;

/**
 *
 * @author Ele
 */
public class abmBovino {

    public void Conectar() {

        try {
            mdbc = new conexion();
            mdbc.init();
            Connection conn = mdbc.getMyConnection();
            stmt = conn.createStatement();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Problemas al concetarse a la Base de Datos", "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    public void AltaBovino(String idjose, int anionacimiento, String idtag, String sexo, String idmadre, String numerofuego,
            int idraza, int idpelaje, int idproveedor, int tipoBovino, String fechaaplicacion, String numSenasa, String colorCaravana) {
        String comandoAlta = "Insert into bovino (idjose, anionacimiento,idtag,sexo,idmadre,numerofuego,idraza, idpelaje, idproveedor,idtipobovino, fechaaplicacion, NumSenasa, ColorCaravana, peso) "
                + "values ('" + idjose + "','" + anionacimiento + "','" + idtag + "','" + sexo + "','" + idmadre + "','" + numerofuego + "','" + idraza + "','" + idpelaje + "','" + idproveedor + "', '" + tipoBovino + "', '" + convertirFecha(fechaaplicacion) + "','" + numSenasa + "','" + colorCaravana + "','" + 0 + "')";
        try {
            Conectar();
            int done = stmt.executeUpdate(comandoAlta);
            //JOptionPane.showMessageDialog(null,"alta","Aviso",JOptionPane.INFORMATION_MESSAGE);
            mdbc.close(stmt);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error en alta bovino", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void AltaEquivalenciaBovino(String identificacion, String idtag) {
        String comandoAlta = "Insert into bovino (identificacion, idtag) values ('" + identificacion + "','" + idtag + "')";

        try {
            Conectar();
            int done = stmt.executeUpdate(comandoAlta);
            //JOptionPane.showMessageDialog(null,"alta","Aviso",JOptionPane.INFORMATION_MESSAGE);
            mdbc.close(stmt);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error en alta bovino", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void ModificaBovino(String identificacion, String fechaaplicacion, String idtag,
            String sexo, String idmadre, String numerofuego, String fechanacimiento,
            int idraza, int idpelaje, int idproveedor, int idtipobovino,
            int idcliente, int idestadoanimal) {

        String ComandoModifica = "Update bovino set fechaaplicacion='" + fechaaplicacion + "',"
                + "idtag='" + idtag + "', sexo='" + sexo + "', idmadre='" + idmadre + "', '" + numerofuego + "'"
                + "fechanacimiento='" + fechanacimiento + "', idraza='" + idraza + "', idpelaje='" + idpelaje + "',"
                + "idproveedor='" + idproveedor + "', idtipobovino='" + idtipobovino + "'"
                + "idcliente='" + idcliente + "', idestadoanimal='" + idestadoanimal + "' where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(ComandoModifica);
            JOptionPane.showMessageDialog(null, "Se modificaron los datos del animal", "Aviso", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al modificar datos del animal", "Error", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.close(stmt);
        mdbc.destroy();
    }

    public void ActualizaBovinoSenasa(String identificacion, String idSenasa) {
        String comando = "Update bovino set NumSenasa='" + idSenasa + "' where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(comando);
            JOptionPane.showMessageDialog(null, "Se asocio el número del Senasa al bovino", "Aviso", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al agregar numero de senasa", "Error", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.close(stmt);
        mdbc.destroy();
    }

    public String convertirFecha(String FechaA) {
        String anio, mes, dia;
        //30112011
        anio = FechaA.substring(4, 8);
        mes = FechaA.substring(2, 4);
        dia = FechaA.substring(0, 2);
        String Fecha = anio + "-" + mes + "-" + dia;
        return Fecha;
    }

    public void BajaAnimal(int identificacion) {
        String comandoBaja = "Delete  from bovino where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(comandoBaja);
            new abmObservaciones().BajaObservación(identificacion);
            JOptionPane.showMessageDialog(null, "Se eliminó el animal de la base de datos", "ERROR", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al dar de baja animal", "ERROR", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.close(stmt);
        mdbc.destroy();
    }

    public boolean ExisteBovino(String idTag) {
        int b = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery("select idtag from bovino where idtag  = '" + idTag + "'");
//            System.out.println(rs.first());
            if (rs.first()) {
                b = 1;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        mdbc.close(stmt);
        mdbc.destroy();
        if (b == 1) {
            return true;
        } else {
            return false;
        }
    }

    public boolean ExisteBovino(int id) {
        int b = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery("select identificacion from bovino where identificacion  = '" + id + "'");
//            System.out.println(rs.first());
            if (rs.first()) {
                b = 1;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        mdbc.destroy();
        if (b == 1) {
            return true;
        } else {
            return false;
        }
    }

    public int CantidadBovino() {
        String comando = "SELECT count(*) as cantidad FROM bovino b";
        int suma = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            suma = Integer.parseInt(rs.getString("cantidad"));
        } catch (Exception ex) {
            ex.getMessage();
        }
        mdbc.destroy();
        return suma;
    }

    public int GetId(int idTag) {
        String comando = "Select identificacion from bovino where idTag='" + idTag + "'";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = Integer.parseInt(rs.getString("identificacion"));
        } catch (Exception ex) {
            ex.getMessage();
        }
        mdbc.destroy();
        return a;
    }

    public int GetIdEstado(int idTag) {
        String comando = "Select idestadoanimal b  from reidentificacion  ri, bovino b where b.identificacion= ri.identificacion and ri.identificacion='" + idTag + "'";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = Integer.parseInt(rs.getString("idestadoanimal"));
        } catch (Exception ex) {
            ex.getMessage();
        }
        mdbc.destroy();
        return a;
    }

    public int GetHembras() {
        String comando = "Select identificacion from bovino where sexo='H'";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.beforeFirst();
            while (rs.next()) {
                a = a + 1;

            }
        } catch (Exception ex) {
            ex.getMessage();
        }
        //System.out.println(a);
        mdbc.destroy();
        return a;
    }

    public String GetTipoBovino(String Desc) {
        String comando = "Select idtipobovino from tipobovino where Descripcion='" + Desc + "'";
        String a = null;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = rs.getString("idTipoBovino");

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
        return a;
    }

    public int GetIdentificacion() {
        String comando = "Select identificacion from bovino order identificacion desc";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = Integer.parseInt(rs.getString("identificacion"));
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
        return a;
    }

    public int GetIdentificacion(String idTag) {
        String comando = "Select identificacion from bovino where idtag='" + idTag + "'";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = Integer.parseInt(rs.getString("identificacion"));
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
        return a;
    }

    public int GetIdentificacionVendido(String idTag) {
        String comando = "Select identificacion from bovino where idtag='" + idTag + "'";
        int a = 0;
        try {
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
            rs.first();
            a = Integer.parseInt(rs.getString("identificacion"));

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "El animal con idtag '" + idTag + "' ya fue vendido", "Aviso", JOptionPane.INFORMATION_MESSAGE);
            a = 0;
        }
        mdbc.destroy();
        return a;
    }

    public void AltaReidentificacion(String idTag, String Fecha, int identificacion) {
        String comandoAlta = "Insert into reidentificacion (idTag, Fecha, identificacion) values ('" + idTag + "','" + Fecha + "','" + identificacion + "')";
        try {
            Conectar();
            int done = stmt.executeUpdate(comandoAlta);
            //JOptionPane.showMessageDialog(null,"alta","Aviso",JOptionPane.INFORMATION_MESSAGE);
            mdbc.close(stmt);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error en alta re identificacion", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void ModificaEstado(int identificacion, String idestadoanimal) {
        int ea = Integer.parseInt(idestadoanimal);
        String ComandoModifica = "Update bovino set idestadoanimal='" + ea + "' where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(ComandoModifica);
            //  JOptionPane.showMessageDialog(null,"Se modificó el estado del animal","Aviso",JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al modificar estado del animal", "Error", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void ModificaEstadoVendido(int identificacion, String idestadoanimal) {
        int ea = Integer.parseInt(idestadoanimal);
        String ComandoModifica = "Update bovino set idestadoanimal='" + ea + "', idTag='' where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(ComandoModifica);
            //  JOptionPane.showMessageDialog(null,"Se modificó el estado del animal","Aviso",JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al modificar estado del animal", "Error", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void ModificaPeso(int identificacion, String peso) {
        String ComandoModifica = "Update bovino set peso='" + peso + "' where identificacion='" + identificacion + "'";
        try {
            Conectar();
            int done = stmt.executeUpdate(ComandoModifica);
            //  JOptionPane.showMessageDialog(null,"Se modificó el estado del animal","Aviso",JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al modificar peso del animal", "Error", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void AltaControlPeso(String identificacion, String peso, String fecha) {
        String altapeso = "Insert into ControlPeso (identificacion, peso, fecha) values ('" + identificacion + "','" + peso + "','" + fecha + "')";
        try {
            Conectar();
            int done = stmt.executeUpdate(altapeso);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error en alta del Control de Peso", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }

    public void AltaEnfermedad(String identificacion, String idtipoenf, String fecha, String observaciones) {
        String altaenfermedad = "Insert into enfermedad (identificacion, idtipoenfermedad, fecha, observacion)"
                + "              values ('" + identificacion + "','" + idtipoenf + "','" + fecha + "','" + observaciones + "')";
        try {
            Conectar();
            int done = stmt.executeUpdate(altaenfermedad);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage(), "Error en alta de la enfermedad", JOptionPane.ERROR_MESSAGE);
        }
        mdbc.destroy();
    }
    
    private conexion mdbc;
    private Statement stmt;
}
